package main

import (
	"fmt"
	"io"
	"os"
)

func mergeTxtFiles(fileList []string, outputFile string) error {
	// 创建输出文件
	outFile, err := os.Create(outputFile)
	if err != nil {
		return fmt.Errorf("无法创建输出文件: %v", err)
	}
	defer outFile.Close()

	// 遍历文件列表，逐个读取并写入输出文件
	for _, fileName := range fileList {
		// 打开当前文件
		inFile, err := os.Open(fileName)
		if err != nil {
			return fmt.Errorf("无法打开文件 %s: %v", fileName, err)
		}
		defer inFile.Close()

		// 将当前文件内容复制到输出文件
		_, err = io.Copy(outFile, inFile)
		if err != nil {
			return fmt.Errorf("无法复制文件 %s 的内容: %v", fileName, err)
		}

		// 可选：在每个文件内容之间添加一个换行符
		_, err = outFile.WriteString("\n")
		if err != nil {
			return fmt.Errorf("无法写入换行符: %v", err)
		}
	}

	return nil
}

func main() {
	// 指定要合并的txt文件列表
	fileList := []string{"file/超神机械师(1-500章).txt", "file/超神机械师(501-1000章).txt", "file/超神机械师(1001-1500章).txt", "file/超神机械师(1501-1530章).txt"}

	// 指定输出的合并后的文件名
	outputFile := "超神机械师.txt"

	// 调用函数合并文件
	err := mergeTxtFiles(fileList, outputFile)
	if err != nil {
		fmt.Println("合并文件时出错:", err)
		return
	}

	fmt.Printf("文件已成功合并到 %s\n", outputFile)
}
